package cn.piesat.client.service;

import cn.piesat.client.model.dto.base.task.DefaultClientRunnerDto;
import cn.piesat.client.model.dto.base.task.DefaultRequestDto;

public interface ClientProcessIntf<T extends DefaultRequestDto,Y extends DefaultClientRunnerDto>{

    /**
     *  调用前处理可变
     * @param t 监听到的消息对象
     * @return 执行对象
     */
    Y beforeProcess(T t);

    /**
     *  拼接命令
     * @param runnerDto 执行对象
     * @return 拼接好的命令
     */
    String spliceCommand(Y runnerDto);

    /**
     * 拼接返回结果
     * @param runnerDto
     * @return
     */
    String spliceResultJson(Y runnerDto);

    /**
     * 调用后处理可变
     * @param runnerDto 执行对象
     */
    void afterProcess(Y runnerDto);

}
